def backtracking(depth):
    if depth == n:
        print(path)
        return
        # 第depth个数字可以从1-n进行选择
    for i in range(1, n + 1):
        # 选择的数字必须是未标记
        if vis[i]:
            continue
        # 第depth个数字选择i
        vis[i] = True
        path.append(i)
        backtracking(depth + 1)
        # 回到上一层之后需要清空标记
        vis[i] = False
        path.pop(-1)


n = int(input())
vis = [False] * (n + 1)
path = []
backtracking(0)
